![]() | MENTAL, UN MODELO COMPUTACIONAL UNIVERSAL |
Condiciones | Acciones | |||
Estado actual | Símbolo leído | Símbolo a grabar | Mov. cabeza | Nuevo estado |
1 | a | c | Derecha | 2 |
2 | b | a | Izquierda | 3 |
3 | c | b | Derecha | 1 |
N° | Lenguaje de programación esencial | MENTAL |
1 | Tipo de datos: entero no negativo. | Existe. |
2 | Identificadores: nombres, cada uno de los cuales tiene asociado un valor. | Pueden especificarse. |
3 | incr nombre; (incrementa en 1 el valor asociado a nombre) | (nombre = nombre + 1)
|
4 | decr nombre; (decrementa en 1; si es cero, permanece dicho valor). | ( nombre>0 → (nombre = nombre − 1) )
|
5 | Estructura de control:
While nombre ≠ 0 do; x End; | 〈( (nombre ≠ 0) → x )〉
|
Característica | Máquina de Turing | MENTAL |
Modelo teórico | Sí | Sí |
Nivel de abstracción | Bajo | Supremo |
Modelo | Particular | Universal |
Límites | Tesis Chuch-Turing | Grados de libertad |
Simplicidad | Sí (operativo) | Sí (conceptual) |
Computación | Elemental | General |
Algorítmica | Elemental | Semántica |
Entorno | No | Sí (espacio abstracto) |
Interactividad | No | Sí |
Código modificable | No | Sí |
Lenguaje formal | No | Sí |
Tipo de modelo | Operativo | Operativo y descriptivo |
Paralelismo | No | Sí |
Estructuras de información | Limitadas | Las de las primitivas |
Reflexividad | No | Sí |
Paradigmas | Imperativo | Universal |
Modelo de la mente | No | Sí (universal) |
(b = " ") // carácter blanco
(cinta =: b★) // secuencia infinita de caracteres en blanco
(a0 = b) // carácter blanco
(alfa = ( a0 … an )) // alfabeto de n caracteres
m
estados: 1, … , m
.
i
: Número de posición del cabezal sobre la cinta. Inicialmente, (i = i0)
.
j
: Número del estado. Inicialmente, (j = j0)
.
k
: Número del elemento del alfabeto a grabar sobre la cinta en la posición del cabezal.
(i = i+1)
.
(i = i−1)
.
(cinta\i = alfa\k)
j1
: (j = j1)
¡
(finalizar la ejecución)
〈( (j = j1) → (cinta\i = alfa\k) → acciones )〉
j1
y si en la actual posición de la cinta está el elemento del alfabeto de orden k
, entonces ejecutar una o varias acciones. Hay dos condiciones (puede haber una condición o ninguna) y una o varias acciones entre las cinco alternativas mencionadas.
( turing = ( (b = " ")
(cinta =: b★)
(a0 = b)
(alfa = ( a0…an ))
(i = i0)
(j°> = j0)
( r1…rn ) )!
)
r1
, ..., rn
son las reglas de funcionamiento de la máquina. Las reglas son expresiones genéricas, por lo que siempre están activas y se realizan las acciones si se cumplen las condiciones correspondientes.
( grabaunos = ( (b = " ")
(cinta =: b★)
(i = 1) )
)
〈( (cinta\i = "1") (i = i+1) )〉
s
sobre la cinta, hacia la derecha, y cuando lo encuentra se para:
( buscar = ( (i° = 1)
〈((cinta\i = s) → ¡) (i = i+1))〉 )!
)
( Turing = (
//
// valores iniciales
//
( i = 1 ) // posición inicial del cabezal
( j = 1 ) // estado inicial
( cinta =: " "★) // cinta inicial (secuencia infinita a blancos)
//
// reglas
//
〈 ((est=1 → (cinta\i = a)) →
((cinta\i = c) (i = i+1) (j = 2)))
((est=2 → (cinta\i = b)) →
((cinta\i = a) (i = i−1) (j = 3)))
((est=3 → (cinta\i = c)) →
((cinta\i = b) (j = 1))) 〉
)
N° | Primitiva | Función |
1 | (...) (secuencia) | Secuencia de los elementos de la cinta (memoria lineal) |
2 | + (suma) y− (resta) | Desplazar respectivamente hacia la derecha y hacia la izquierda el cabezal sobre la cinta |
3 | = (sustitución) | Sustituir el símbolo en una celda de la cinta en la posición del cabezal |
4 | =: (sustitución diferida, representación) | Se utilizan indirectamente en las operaciones derivadas ★ (repetición) y … (rango)
|
5 | → (condición) | Condición de cada regla de funcionamiento de la máquina |
6 | \ (particularización cuantitativa) | Acceder a un determinado símbolo (del alfabeto o de la cinta) |
7 | evaluación (no hay símbolo) y ° (no evaluación) | En las expresiones de sustitución |
8 | Generalización no parametrizada | En las definiciones de las reglas |